import { createStore } from "vuex";

export function createMicroStore() {
  return createStore({
    state: {
      count: 0,
      message: "",
      mainStore: null, // 用于存储主应用的store实例
    },
    mutations: {
      // 更新计数器
      increment(state) {
        state.count++;
        // 同步更新主应用的状态
        if (state.mainStore) {
          state.mainStore.commit("increment");
        }
      },
      // 设置消息
      setMessage(state, message) {
        state.message = message;
      },
      // 设置主应用的store实例
      setMainStore(state, store) {
        state.mainStore = store;
      },
    },
    actions: {
      // 发送消息到主应用
      sendMessageToMain({ state }, message) {
        if (state.mainStore) {
          state.mainStore.dispatch("updateMessage", message);
        }
      },
    },
    getters: {
      getCount: (state) => state.count,
      getMessage: (state) => state.message,
    },
  });
}
